// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "Components/Widget.h"
#include "PlayerController/Q3D_CPPI_PlayerController.h"
#include "Q3D_CPPA_PlayerController.generated.h"

/**
 *
 */
UCLASS(Blueprintable, ClassGroup = (Q3D), meta = (Tooltip = "Q3D_PlayerController 基类(C++)"))
class Q3D_LIB_API AQ3D_CPPA_PlayerController : public APlayerController, public IQ3D_CPPI_PlayerController
{
	GENERATED_BODY()

public:
	AQ3D_CPPA_PlayerController();
	~AQ3D_CPPA_PlayerController();

public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_PlayerController, meta = (Tooltip = "切换到 HUD 显示"))
	void Q3D_F_InputMode_Set_To_HUD(UWidget *ptr_w_to_foces, bool bool_show_mouse_cursor, UPARAM(DisplayName = "bool_success") bool &bool_success, UPARAM(DisplayName = "string_log") FString &string_log);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_PlayerController, meta = (Tooltip = "切换到 Game 显示"))
	void Q3D_F_InputMode_Set_To_Game(bool bool_show_mouse_cursor, UPARAM(DisplayName = "bool_success") bool &bool_success, UPARAM(DisplayName = "string_log") FString &string_log);

public:
	virtual void Q3D_IF_Pawn_Possessed_Implementation(APawn *ptr_a_pawn, bool &bool_success, FString &string_log) override;
};
